Static Test Controller
Deze pagina beschrijft de ontwikkeling van een geïntegreerd meetsysteem voor statische motorttesten. Deze electronica interfacet met de Ballistische Evaluatie Motor, leest hier de meetwaarden uit en geeft deze door aan een computer voor opslag en analyse.
Een Ballistische Evaluatie Motor
Bij het ontwikkelen van nieuwe brandstoffen zijn de eigenschappen van de brandstof onbekend. Ook wanneer bestaande brandstofformules aangepast worden, zoals wanneer additieven toegevoegd worden, veranderen deze parameters. Bij het ontwerpen van een raketmotor is het uiteraard belangrijk om het gedrag van de brandstof exact te kennen.
Eén van de belangrijkste parameters is de verbrandingssnelheid bij verschillende drukken in de motor. Deze wordt bepaald door de snelheidscoëfficiënt (a) en de drukexponent (n). Uitgedrukt volgens Saint Robert’s wet wordt dat r = aPcn. Het zal duidelijk zijn dat vooral de drukexponent verantwoordelijk is voor het mogelijk uit de hand lopen van de brandreactie, en de ontploffing van de motor die er onvermijdelijk op volgt.
Om de eigenschappen van nieuwe brandstoffen te karakteriseren, bouwt de VRO aan een Ballistische Evaluatie-Motor (BEM). Dit is een eenvoudige motor die afgestemd is op het gebruik in statische testen: de verbrandingskamer is dikwandig om hoge drukken toe te laten, de straalpijp is eenvoudig uitgevoerd (meestal een vervangbare cylindrische opening), en het brandstofblok is een end-burner. De motor is voorzien van een tap om drukmeting toe te laten, zodat in de gaten kan gehouden worden aan welke druk de brandstof brandt bij een bepaalde samenstelling en verhouding tussen brandoppervlakte en keeloppervlakte. Meestal wordt de verbrandingssnelheid van de brandstof afgeleid uit de tijd tussen ontsteking en opbranden van de brandstof.
De BEM die ontwikkeld wordt door de VRO heeft naast drukmeting echter nog twee meetsystemen aan boord: een drukcel om de stuwkracht van de motor te meten, en een systeem van breekdraden. Dit zijn een aantal dunne koperdraadjes die parallel aan en op gelijke afstand van elkaar ingegoten zijn in de brandstof. Tijdens het branden van de brandstof zullen deze breekdraden één na één doorbranden. De verbrandingssnelheid van de brandstof kan dan afgeleid worden uit de tijd tussen het doorbranden van deze breekdraden. Dit lijkt een exactere methode dan het meten van de tijd tussen ontsteking en uitdoven, omdat hier eventuele start- of eindeffecten zoals op druk komen of ‘tail-off’ buiten de meting vallen.
De BEM zelf wordt momenteel vervaardigd door Pol. De meetwaarden van de verschillende meetsystemen moeten natuurlijk ook uitgelezen worden, daarvoor ontwikkelt David het volgende stukje electonica.
De Static Test Controller
De Static Test Controller is een electronica-print gebaseerd op een PIC microcontroller. Aan boord zijn alle componenten die nodig zijn om de verschillende meetwaarden in te lezen. De print is voorzien van de mogelijkheid om expansiebordjes in te prikken, vergelijkbaar met de Arduino Shields.
Inlezen van drukcel
Op de print is een aansluiting voorzien voor een drukcel (load cell). Omdat de uitgang van een drukcel niet rechtstreeks in te lezen is, is ook een meetversterker voorzien. Deze meetversterker is de bekende INA125 van Burr-Brown. Hij heeft een interne referentiespanning aan boord waarmee de drukcel aangestuurd wordt, en versterkt de differentiële milli-volt spanning die uit de load cell komt tot een niveau dat geschikt is om ingelezen te worden door de microcontroller (0-5VDC). Met een multi-turn potmeter is de gewenste versterking in te stellen, zodat –in functie van de maximaal verwachte stuwkracht– het meetbereik van het systeem volledig kan benut worden.
Inlezen van druksensor
Er is tevens een aansluiting voorzien voor een druksensor (pressure transducer). Er zijn 2 veelgebruikte types druksensoren: diegene die een 0-5VDC signaal leveren worden rechtstreeks ingelezen, de in de industrie veel toegepaste 4-20mA-types hebben echter eerst een omzetting van stroom naar spanning nodig. Hiervoor moet een jumper gezet worden op de print.
Inlezen van breekdraden
De breekdraden worden ingelezen door een Breakwire Shield. Dit is een dochterprintje dat bovenop de moederprint geprikt wordt. Er is een aansluiting voorzien voor beide zijden van 4 of minder breekdraden. Op 4 LEDs kan men tijdens het opstellen van de BEM zien of de breekdraden correct aangesloten zijn. Ook zijn de nodige componenten aanwezig om het meetsysteem te beveiligen tegen verkeerd aansluiten, of tegen storingen die mogelijk opgepikt worden door de aansluitdraden. De breekdraden worden verder rechtstreeks ingelezen door de microcontroller. Momenteel is het Breakwire Shield opgebouwd op gaatjesprint.
Werking van het systeem
De Static Test Controller wordt met een USB-kabel aangesloten op een laptop, die herkent het systeem als een standaard seriële poort. Met een terminal-programma zoals HyperTerminal kan dan verbinding gemaakt worden.
Het systeem is voorzien van een DOS-achtige commando-prompt, waar men door het ingeven van commando’s allerhande instellingen kan doen. Men kan bijvoorbeeld de samplesnelheid kiezen tussen 1 tot 500 metingen per seconde, of kiezen welke van de 3 metingen men gaat inlezen (drukcel, druksensor en/of breekdraden). De instellingen kunnen ook geschreven worden naar of ingelezen uit het ingebouwde permanente geheugen, dat de instellingen onthoudt zelfs na wegvallen van de voedingsspanning.
--------------------------------------------------
Static test controller (c)2010 www.soldersmell.com
--------------------------------------------------
Firmware version: 09 18F2550 state machine filtered.c (21-nov-10 19:38:39)
Breakwire Shield not detected
SD Shield not detected
!!! SWITCH ON TEXT CAPTURE !!!
Enter a command or H for help
Command>
Command>
Command> H
Overview of commands:
- S: set sample (S)peed
- A: set (A)ctive channels
- I: set test (I)dentification
- U: set (U)nit of measurement (metric or imperial)
- L: calibrate (L)oad cell
- P: calibrate (P)ressure transducer
- B: check (B)reak wire status
- R: (R)ead stored configuration
- W: (W)rite configuration
- T: Start detection of static (T)est
- F: (Force) start of test
- H: display (H)elp
Command> S
Current sample speed: 100 Hz
Enter sample speed in Hz (max. 500): 500
Sample speed set to 500 Hz
Command> W
Configuration written to non-volatile memory
Command> R
Read configuration:
- Sample speed: 500 Hz
- Units: M
- Active channels:
- Loadcell
- Pressure transducer
- Breakwires 1, 2, 3 & 4
- Test identification: "Testing..."
Command> T
Waiting to detect test start...
Command>
Wanneer de instellingen gemaakt zijn, wordt door middel van het commando ‘T’ (‘start detection of Test’) de test gestart. Het systeem zal nu de verschillende sensoren 10.000 keer per seconde in de gaten houden, en als er een significante verandering is, zal de test gestart worden. De criteria hiervoor zijn:
- Een verandering in de status van één van de breekdraden
- Een absolute stijging van 0,5% van de drukcel of druksensor sinds 5 samples geleden
Eens de test gestart, stuurt het systeem alle gemeten waarden door naar de laptop, waar ze kunnen worden opgeslaan in een tekstfile.
Command> T
Waiting to detect test start...
Command>
Start of test detected
21,262,99,99,99,99
21,262,99,99,99,99
21,263,99,99,99,99
21,272,99,99,99,63
54,273,99,99,99,0
98,292,99,99,99,0
145,340,99,99,99,0
190,372,99,99,99,0
Enz...
De eerste waarde op elke lijn is de inlezing van de drukcel, de tweede waarde die van de druksensor. Deze waarden variëren tussen 0 en 1023. De volgende waarden zijn voor de 4 breekdraden. Ze laten zien hoeveel keer de breekdraad sinds de vorig doorgestuurde meting niet doorbroken was. Deze methode laat toe om, onafhankelijk van de gekozen samplesnelheid, toch situaties te detecteren waarin de breekdraden zeer snel afwisselend breken en terug contact maken.
Opbouw van de firmware
De software in de microcontroller, ook wel firmware genoemd, is opgebouwd volgens het model van de State Machine. Dit is een flexibele programma-structuur die werkt met ‘staten’. De firmware draait in een eindeloze lus, waarbij in de Idle-staat telkens de invoeren gelezen worden. Afhankelijk van deze invoeren wordt de vervolgstaat gezet, waarna –bij de volgende passage in de lus– deze staat verwerkt wordt.
De ingelezen gegevens worden in een ringbuffer (‘circular buffer’) gezet. Dit is een rij gegevens die automatisch naar z’n begin terugloopt, gegevens die niet uitgelezen worden, worden dus gewoon overschreven.
Op het ogenblik dat de test start, wordt vanaf het begin van de ringbuffer uitgelezen. Dit heeft als voordeel dat, waar meestal na het detecteren van de start van de test deze gegevens verloren zijn, ook de paar milliseconden vóór de test beschikbaar blijven. Men kan dus later ook het eigenlijke starten van de test bekijken. Daarnaast heeft de ringbuffer ook de belangrijke functie van het bufferen van de gegevens, zodat er niets verloren gaat mocht de stroom van gegevens naar de laptop de ingelezen gegevens (tijdelijk) niet kunnen bijhouden.
Voorts loopt de interne routine die de gegevens inleest steeds aan een snelheid van 10.000 Hz. Omdat de snelheid van uitlezen naar de laptop instelbaar gemaakt is en dus zal verschillen, is een methode bedacht om dit verschil in snelheid op te vangen. Dit gebeurt door de ingelezen waarden toe te voegen aan een recusieve filter. Zo wordt ook eventuele sensorruis gefilterd alvorens de waarden verstuurd worden. Het filter is van het type “filterwaarde = filterwaarde + (sensorwaarde – filterwaarde) / factor”. De waarden in het filter worden dus steeds beïnvloed door het verschil tussen de huidige en de vorige waarde, waarbij deze invloed naar beneden geschaald wordt door een filterfactor.
Analyse van de gegevens
Om analyse van de gegevens toe te laten, worden de opgeslagen gegevens geïmporteerd in een spreadsheet zoals bvb Excel. Men kan dan allerhande grafieken maken en berekeningen toepassen. Het werken met ruwe gegevens geeft de complete vrijheid naar verwerking toe, maar vereist enige nabewerking van de data. Daarom wordt er gedacht aan het ontwikkelen van een Windows-applicatie om de data rechtstreeks in te lezen, te verwerken, grafieken te maken en om automatisch de meest relevante parameters van de test te berekenen (Isp, totale stuwkracht, brandduur etc).
Toekomstige uitbreidingen
Dankzij het systeem van Shields zijn toekomstige uitbreidingen mogelijk. Zo zal er (nadat het basissysteem werkt), een Shield ontworpen worden dat de meetgegevens opslaat op een SD-kaart. Zo kan het systeem ook gebruikt worden zonder dat een laptop aangesloten hoeft te worden.
Status van het project
Op dit ogenblik heeft Pol de BEM zelf afgewerkt, en heeft David een werkend prototype van de electronica gebouwd. Tony zal een brandstofblok gieten zodat de eerste testen met het meetsysteem kunnen gedaan worden. Hierover ongetwijfeld meer in de volgende VRO Nieuws.
Zie ook: